public class test11_9_5 {
    public static void main(String[] args) {
        // break 和 continue 语句
        // 测试break语句——产生 100 以内的随机数，直到 88 时停止
        boolean flag = true;
        while (flag){
            int num = (int)(Math.random() * 100);
            System.out.println(num);
            if (num == 88){
                flag = false;
            }
        }

        // 测试continue语句——输出 100~150 之间不能被 3 整除的数，并且每行输出 5 个
        int count_1 = 0;  // 计数器，用于每行输出 5 个数
        for (int i = 100; i <= 159; i++){
            if (i % 3 == 0){
                continue; // 跳过本次循环，继续下一次循环
            }
            else{
                System.out.print(i + "\t");
                count_1++;
                if (count_1 == 5){
                    System.out.println(); // 换行
                    count_1 = 0; // 重置计数器
                }
            }
        }
        System.out.println();
        // 带标签的continue 语句
        // 控制嵌套循环跳转 （打印 101 ~ 150 只见所有的质数）
        int count_2 = 0;
        outer:for (int i = 101; i <= 150; i++){
                for (int j = 2; j < i/2; j++){
                    if (i % j == 0){
                        continue outer;
                    }
                }
                System.out.print(i + "\t");
                count_2 ++;
                if (count_2 == 5){
                    System.out.println();
                    count_2 = 0; // 重置计数器
                }
            }
    }
}



/*
 * 学习笔记：
 * 1. break 语句用于跳出循环，结束循环
 * 2. continue 语句用于跳过本次循环，继续下一次循环
 * 3. break 和 continue 语句都可以在 switch 语句中使用
 * 4. break 和 continue 语句都可以在循环中使用
 * 
 * 带标签的continue 语句
 * 1. continue 语句可以带标签，用于跳出多层循环
 * 2. 标签是一个标识符，用于标识循环
 * 3. 标签的语法是：标签名：循环语句
 * 4. 标签名可以是任何合法的标识符，但通常使用大写字母
 * 5. 标签名和循环语句之间用冒号分隔
 * 6. 在 continue 语句中使用标签时，需要使用标签名和 continue 关键字之间用冒号分隔
 */